package com.wb.core08_常用类.练习.周末;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author 黄衡熙
 * @version 1.0
 */


public class Test {
    public static void main(String[] args) {
      //  Test1();
      //  Test2();
      //  Test3();
        Test4();
       // Test5();
      //  Test6();
      //  Test7();


    }

    // 1.控制台输入一个字符串,统计字符串包含多少个数字、英文字母以及其他字符
    public static void Test1() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第一题/请输入字符串：");
        String s1 = sc.nextLine();
        int a = 0, b = 0, c = 0;
        for (int i = 0; i < s1.length(); i++) {
            char d = s1.charAt(i);
            if ((d >= 'A' && d <= 'Z') || (d >= 'a' && d <= 'z')) {
                a++;
            } else if (d >= '0' && d <= '9') {
                b++;
            } else {
                c++;
            }
        }
        System.out.println("数字:" + b + "英文字母:" + a + "其他字符:" + c);
    }

    // 2.控制台输入一个字符串,统计每个字母出现的次数(忽略大小写)并输出
    public static void Test2() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第二题/请输入字符串：");
        String s2 = sc.nextLine();
        s2 = s2.toUpperCase();
        char[] arr = s2.toCharArray();
        Arrays.sort(arr);
        //System.out.println("排序后:" + Arrays.toString(arr));
        int count = 1;
        for (int i = 1; i <= arr.length; i++) {
            if (i == arr.length || arr[i] != arr[i - 1]) {
                System.out.println(arr[i - 1] + ":" + count);
                count = 1;
            } else {
                count++;
            }
        }


    }

    // 3.控制台输入一个字符串,对字符串中字符进行自然顺序的排序,将排序后的字符串展示出来
    public static void Test3() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第三题/请输入字符串：");
        String s3 = sc.nextLine();
        char[] arr = s3.toCharArray();
        Arrays.sort(arr);
        String s = new String(arr);
        System.out.println(s);
    }

    // 4.控制台输入两个字符串,计算第二个字符串在第一个字符串中出现的次数
    public static void Test4() {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入第一个字符串:");
        String s = sc.nextLine();
        System.out.println("请输入第二个字符串:");
        String s2 = sc.nextLine();
        if (s.length() >= s2.length()) {
            // 准备一个变量,用于接收出现的次数
            int count = 0;
            // 定义一个变量,用于接收第二个字符串在第一个字符串中出现的索引位置
            int index = 0;
            while ((index = s.indexOf(s2)) != -1) {
                // 如果满足条件,则说明出现了
                count++;
                // 当找到之后,将第一次出现的子字符串与前面多余的所有字符全部截取掉qweand
                s = s.substring(index + s2.length());
                // 重新进入循环再次判断是否出现
                // 一直到没有出现为止
            }
            if (count > 0) {
                System.out.println("第二个字符串在第一个字符串中出现了" + count + "次");
            } else {
                System.out.println("第二个字符串没有出现在第一个字符串中");
            }
        } else {
            System.out.println("第二个字符串没有出现在第一个字符串中");
        }


    }

    // 5.在控制台输入一个身份证号码,判断身份证号码格式是否正确
// 身份证号码只能是15位或者18位字符
// 如果是15位,要求必须全部是数字
// 如果是18位,要求前17位必须全部是数字,最后一位可以是数字或者X
    public static void Test5() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第五题/请输入身份证号:");
        String s5 = sc.nextLine();
        if (s5.matches("[0-9]{15}")) {
            System.out.println("提示:身份证格式正确");
        } else if (s5.matches("[0-9]{17}[0-9X]")) {
            System.out.println("提示:身份证格式正确");
        } else {
            System.out.println("提示:身份证格式错误");
        }
    }

    // 6.在控制台输入一个电子邮箱,判断电子邮箱格式是否正确
// 要求邮箱必须以英文字母或者数字开头,后面可以跟英文字母数字或者下划线
// 后面跟@符号,@符号后面跟英文字母或者数字
// 以.com或者.com.cn结尾
    public static void Test6() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第六题/请输入电子邮箱:");
        String s6 = sc.nextLine();
        if (s6.matches("[a-zA-Z0-9][a-zA-Z0-9_]+@[a-zA-Z0-9-]+(\\.com|\\.com\\.cn)")) {
            System.out.println("提示:电子邮箱格式正确!");
        } else {
            System.out.println("提示:电子邮箱格式错误!");
        }
    }

    // 7.在控制台输入一个用户名,判断用户名格式是否正确
// 用户名由字母、数字、下划线、点、减号组成,只能以数字字母开头和结尾,长度4-18位
    public static void Test7() {
        Scanner sc = new Scanner(System.in);
        System.out.print("第七题/请输入用户名:");
        String s7 = sc.nextLine();
        if (s7.matches("[a-zA-Z0-9][a-zA-Z0-9_.-]{2,16}[a-zA-Z0-9]")) {
            System.out.println("提示:用户名格式正确");
        } else {
            System.out.println("提示:用户名格式错误！");
        }
    }
}
